package ufc.sd.view;

import java.text.ParseException;
import java.util.List;

import ufc.sd.dao.AlunoDAO;
import ufc.sd.dao.CursoDAO;
import ufc.sd.entities.Aluno;
import ufc.sd.entities.Curso;
import ufc.sd.util.BusinessException;
import ufc.sd.util.Util;

public class UniversidadeFacade {

	public void inserirAluno(Aluno aluno) throws BusinessException {
		if (aluno.getCursoMatriculado() == null) {
			throw new BusinessException("O campo curso é obrigatório.");
		}
		if (aluno.getMatricula().isEmpty()) {
			throw new BusinessException("O campo matrícula é obrigatório.");
		}
		if (aluno.getNomeCompleto().isEmpty()) {
			throw new BusinessException("O campo nome é obrigatório.");
		}
		if (!aluno.getDataNascimentoString().isEmpty()) {
			try {
				aluno.setDataNascimento(Util.parseDate(aluno.getDataNascimentoString()));
			} catch (ParseException e) {
				throw new BusinessException("Data de nascimento inválida.");
			}
		}
		AlunoDAO.getInstance().insert(aluno);
	}

	public List<Aluno> obterAlunos() {
		return AlunoDAO.getInstance().getAll();
	}

	public List<Curso> obterCursos() {
		return CursoDAO.getInstance().getAll();
	}
}
